package funcionarios;

public class RepositorioFuncionariosArray implements RepositorioFuncionarios{

	private Funcionario[] funcionarios;

	private int indice;

	public RepositorioFuncionariosArray() {
		funcionarios = new Funcionario[1000];
		indice = 0;
	}

	public void inserir(Funcionario funcionario) {
		funcionarios[indice] = funcionario;
		indice++;
	}

	public void atualizar(Funcionario funcionario){
		String cpf;
		cpf = funcionario.getIdentificador();
		int i = getIndice(cpf);
		if (i == indice) {
			System.out.println(" Funcionario Nao Encontrado !!!");
		} 
		else {
			funcionarios[i] = funcionario;
		}
	}

	public void remover(String cpf){
		int i = getIndice(cpf);
		if (i == indice) {
			System.out.println(" Funcionario Nao Encontrado !!!");
		} 
		else {
			funcionarios[i] = funcionarios[indice - 1];
			indice--;
		}
	}

	public Funcionario procurar(String cpf) {

		Funcionario resposta;
		int i = getIndice(cpf);
		if (i == indice) 
		{
			System.out.println(" Funcionario Nao Encontrado !!!");
			resposta = null;
		} 
		else 
		{
			resposta = funcionarios[i];
		}
		return resposta;
	}

	public boolean existe(String cpf) {
	
		boolean resposta;
		int i = getIndice(cpf);
		if (i == indice)
		{
			resposta = false;
		}
		else
		{
			resposta = true;
		}
		return resposta;
	}
	
	private int getIndice(String cpf)
	{
		String n;
		boolean achou = false;
		int i = 0;
		
		while ((!achou) && (i < indice) )
		{
			n = funcionarios[i].getIdentificador();
			if (n.equals(cpf))
			{
				achou = true;
			}
			else
			{
				i++;
			}
		}
		return i;
	}
}

